home *** CD-ROM | disk | FTP | other *** search
/ Ahoy 1986 December / Ahoy_Magazine_86-12_1986_Double_L.d64 / Disk Check-Up (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  5KB  |  196 lines

  1. 90 print"[147]":poke53280,2:poke53281,0:poke646,1
  2. 100 goto 280
  3. 110 rem inner trace loop
  4. 120 print#1,"u1 2 0";t;s
  5. 130 input#1, en,em$,et,es
  6. 140 if en<>0 then goto 1960:rem disk trace error
  7. 150 lt%(i)=lt%(i)+1
  8. 160 if ob%(t,s)<>0 then goto 1410:rem file intersect
  9. 170 ob%(t,s)=i
  10. 180 get#2,a$,b$
  11. 190 if a$="" then goto 1450:rem trace loop continue
  12. 200 if b$="" then b$=chr$(0)
  13. 210 t=asc(a$):s=asc(b$)
  14. 220 goto 120:rem inner trace loop
  15. 230 rem*******************************
  16. 240 rem disk check-up
  17. 250 rem
  18. 260 rem   don fulton
  19. 270 rem*******************************
  20. 280 dim i,s,t,x,y,z
  21. 290 dim bc,en,es,et,im,lc,of,pf,s1,s2,sf,t1,t2
  22. 300 dim ts%(144),ss%(144),ld%(144),lt%(144),pf%(144),n$(144)
  23. 310 dim ob%(35,20)
  24. 320 close 1:open 1,8,15:close 2:close 1
  25. 330 rem-------------------------------
  26. 340 print chr$(147)
  27. 350 print
  28. 360 print "            disk check-up
  29. 370 [153] "           tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(
  30. 380 print " checks:
  31. 390 [153]
  32. 400 [153] "  -- start links different
  33. 410 print
  34. 420 print "  -- trace file len = dir file len
  35. 430 [153]
  36. 440 [153] "  -- files do not overlap
  37. 450 print
  38. 460 print "  -- (3) blocks free
  39. 470 [153]
  40. 480 [143]--------------------------------
  41. 490 [143] sho        -36 cy-          shp
  42. 500 [143] cmg                         cmm
  43. 510 [143] cmg       box below         cmm
  44. 520 [143] cmg                         cmm
  45. 530 [143] shl        -36 cp-          sh@
  46. 540 [143]--------------------------------
  47. 550 [153] " (NULL)usrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusr(NULL)
  48. 560 print " [165]this utility does not write to disk.[167]
  49. 570 [153] " fn                                    then
  50. 580 print " [165]   (problem files are displayed)[146]    [167]
  51. 590 [153] " fn          in inverse video)wait         then
  52. 600 print " [204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]
  53. 610 [129] x[178]1 [164] 1000:[130]
  54. 620 [153]
  55. 630 [143]-------------------------------
  56. 640 [143] find start of active files
  57. 650 [153]
  58. 660 [153] "      start                    length  "
  59. 670 [153] "file  t , s    file name     dir--trace"
  60. 680 [153] "tab(tab(tab(tab(  tab(tab(tab(tab(tab(   tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(    tab(tab(tab(  tab(tab(tab(tab(tab("
  61. 690 [159] 1,8,15
  62. 700 [159] 2,8,2,"#"
  63. 710 t1[178]18:s1[178]1:i[178]1
  64. 720 [143] next directory sector
  65. 730 :  [139] t1[178]0 [167] [137]1010:[143] directory close
  66. 740 :  [152]1,"u1 2 0";t1;s1
  67. 750 :  [132]1, en,em$,et,es
  68. 760 :  [139] en[179][177]0 [167] [137] 1980:[143] disk error
  69. 770 :  [161]#2,a$,b$
  70. 780 :  t2[178]t1:s2[178]s1
  71. 790 :  t1[178][198](a$[170][199](0))
  72. 800 :  s1[178][198](b$[170][199](0))
  73. 810 :  [129] x[178]2 [164] 255 [169] 32
  74. 820 :    [152]1,"u1 2 0";t2;s2
  75. 830 :    [152]1,"b-p 2";x
  76. 840 :    [132]1, en,em$,et,es
  77. 850 :    [139] en[179][177]0 [167] [137] 1980:[143] disk error
  78. 860 :    [161]#2,c$,d$,e$,f$,g$,h$,i$,j$,k$,l$,m$,n$,o$,p$,q$,r$,s$,t$,u$
  79. 870 :    [139] c$[178]"" [167] [137] 980:[143] directory continue
  80. 880 :    ts%(i)[178][198](d$[170][199](0))
  81. 890 :    ss%(i)[178][198](e$[170][199](0))
  82. 900 :    n$(i)[178]f$[170]g$[170]h$[170]i$[170]j$[170]k$[170]l$[170]m$[170]n$[170]o$[170]p$[170]q$[170]r$[170]s$[170]t$[170]u$
  83. 910 :    [152]1, "b-p 2";x[170]28
  84. 920 :    [161]#2,v$,w$
  85. 930 :    ld%(i)[178][198](v$[170][199](0))[170]256[172][198](w$[170][199](0))
  86. 940 :    [153] i;[163]4)ts%(i);[163]8)",";[163]9)ss%(i);
  87. 950 :    [153] [163]13)n$(i);[163]29)ld%(i);[163]33);"--";lt%(i)
  88. 960 :    i[178]i[170]1
  89. 970 :    [143]  directory continue
  90. 980 :    [130]
  91. 990 [137] 730:[143] next directory sector
  92. 1000 [143] directory close
  93. 1010 im[178]i[171]1
  94. 1020 [160] 2:[160] 1
  95. 1030 [143]------------------------------
  96. 1040 [153]
  97. 1050 [153] " checking start links for overlap"
  98. 1060 [153]
  99. 1070 [139] im[178]0 [176] im[178]1 [167] [137] 1250:[143]  start link end
  100. 1080 [129] i[178]2 [164] im
  101. 1090 :  [129] y[178]1 [164] i[171]1
  102. 1100 :    [139] ts%(y)[178]ts%(i)[167] [139] ss%(y)[178]ss%(i)[167] [137] 1150:[143] file overlap
  103. 1110 :  [130]
  104. 1120 [130]
  105. 1130 [137] 1250:[143] start link end
  106. 1140 [143] file overlap
  107. 1150 :    pf%(i)[178]1:pf%(y)[178]1
  108. 1160 :    of[178]1:[143] set overlap flag
  109. 1170 :    [153] y;[199](18);[163]4)ts%(y);[163]8)",";
  110. 1180 :    [153] [163]9)ss%(y);[163]13)n$(y);[199](146);
  111. 1190 :    [153] [163]29)ld%(y);[163]33);"--";lt%(y)
  112. 1200 :    [153] i;[199](18);[163]4)ts%(i);[163]8)",";
  113. 1210 :    [153] [163]9)ss%(i);[163]13)n$(i);[199](146);
  114. 1220 :    [153] [163]29)ld%(i);[163]33);"--";lt%(i)
  115. 1230 [137] 1110:[143] start link continue
  116. 1240 [143]  start link end
  117. 1250 [139] of[178]0 [167] [153] "     --start links ok--"
  118. 1260 [143]-----------------------------
  119. 1270 [153]
  120. 1280 [153] " tracing files"
  121. 1290 [153]
  122. 1300 [159] 1,8,15
  123. 1310 [159] 2,8,2,"#"
  124. 1320 [139] im[178]0 [167] [137] 1530:[143] trace end
  125. 1330 [129] i[178]1 [164] im
  126. 1340 :    t[178]ts%(i)
  127. 1350 :    s[178]ss%(i)
  128. 1360 :    lt%(i)[178]0
  129. 1370 :    pf$[178]""
  130. 1380 :    sf[178]0
  131. 1390 :    [137] 120:[143] inner trace loop
  132. 1400 :    [143] file intersect
  133. 1410 :    pf%(ob%(t,s))[178]1
  134. 1420 :    pf%(i)[178]1
  135. 1430 :    sf[178]1:[143] set intersect flag
  136. 1440 :    [143] trace loop continue
  137. 1450 :    bc[178]bc[170]lt%(i)
  138. 1460 :    [153] i;[163]4)ts%(i);[163]8)",";[163]9)ss%(i);
  139. 1470 :    [139] lt%(i)[179][177]ld%(i) [167] pf%(i)[178]pf%(i)[170]2:[153] [199](18);
  140. 1480 :    [153] [163]13)n$(i);[163]29)ld%(i);[163]33);"--";lt%(i)
  141. 1490 :    [139] pf$[179][177]""[167] [153] "   (file";i;"contains ";[170]pf$;")":[153]
  142. 1500 :    [139] sf[178]1 [167] [153] "   (file";i;"intersects file ";ob%(t,s);")":[153]
  143. 1510 [130]
  144. 1520 [143] trace end
  145. 1530 [160] 2:[160] 1
  146. 1540 [143]------------------------------
  147. 1550 [153]
  148. 1560 [153] " problem files--"
  149. 1570 [153] " tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab("
  150. 1580 [139] im[178]0 [167] [137] 1710:[143] problem file end
  151. 1590 [129] i[178]1 [164] im
  152. 1600 :  [139] pf%(i)[178]0 [167] [137] 1690:[143] problem loop continue
  153. 1610 :  pf[178]1:[143] set problem file flag
  154. 1620 :  [153] i;
  155. 1630 :  [139] pf%(i)[178]1 [176] pf%(i)[178]3 [167] [153] [199](18);
  156. 1640 :  [153] [163]4)ts%(i);[163]8)",";[163]9)ss%(i);
  157. 1650 :  [153] [199](18);[163]13)n$(i);[199](146);
  158. 1660 :  [139] pf%(i)[178]2 [176] pf%(i)[178]3 [167] [153] [199](18);
  159. 1670 :  [153] [163]29)ld%(i);[163]33);"--";lt%(i)
  160. 1680 :  [143]  problem loop continue
  161. 1690 [130]
  162. 1700 [143] problem file end
  163. 1710 [139] pf[178]0 [167] [153] "      none"
  164. 1720 [153]
  165. 1730 [153] " block count = ";bc
  166. 1740 [153]
  167. 1750 [153] " blocks free = ";664[171]bc;[163]20)"(trace)"
  168. 1760 [129] i[178]0 [164] im
  169. 1770 :  lc[178]lc[170]ld%(i)
  170. 1780 [130]
  171. 1790 [153] " blocks free = ";664[171]lc;[163]20)"(dir)"
  172. 1800 [143]------------------------------
  173. 1810 [143] dir bam blocks free
  174. 1820 [159] 1,8,15
  175. 1830 [159] 2,8,2,"#"
  176. 1840 [152]1,"u1 2 0";18;0
  177. 1850 [132]1, en,em$,et,es
  178. 1860 [139] en[179][177]0 [167] [137] 1980:[143] disk error
  179. 1870 [129] x[178]0 [164] 35
  180. 1880 :  [161]#2,w$,x$,y$,z$
  181. 1890 :  [139] x[179][177]0 [175] x[179][177]18 [167] bu[178]bu[170][198](w$[170][199](0))
  182. 1900 [130]
  183. 1910 [153] " blocks free = ";bu;[163]20)"(bam)"
  184. 1920 [160] 2:[160] 1
  185. 1930 [128]
  186. 1940 [143]------------------------------
  187. 1950 [143] disk trace error
  188. 1960 [139] en[178]66 [167] pf$[178]"illegal link":[137] 1450:[143] trace loop continue
  189. 1970 [143] disk error
  190. 1980 [153]
  191. 1990 [153] " unrecoverable disk error"
  192. 2000 [153]
  193. 2010 [153] en;em$;et;es
  194. 2020 [160] 2:[160] 1
  195. 2030 [128]
  196.